from pydantic import BaseModel, Field
from typing import Optional


class Talent(BaseModel):
    """
       Resource is a class that represents a resource.
       """

    id: str = Field(None, description="id")
    project_id: str = Field(..., description="线程ID")
    user_id: str = Field(..., description="用户ID")
    name: str = Field(..., description="姓名")
    gender: Optional[str] = Field(None, description="性别")
    age: Optional[str] = Field(None, description="年龄")
    mobile: Optional[str] = Field(None, description="手机号")
    education: Optional[str] = Field(None, description="学历")
    experience: Optional[int] = Field(None, description="工作年限")
    position_applied: Optional[str] = Field(None, description="应聘岗位")
    score: Optional[float] = Field(None, description="匹配得分")
    resume_url: Optional[str] = Field(None, description="简历文件url")
    resume_content: Optional[str] = Field(None, description="简历内容")
    resume_match_url: Optional[str] = Field(None, description="匹配报告url")
    resume_match_content: Optional[str] = Field(None, description="匹配报告内容")
    resume_match_score_content: Optional[dict] = Field(None, description="匹配得分内容")
    interview_question_url: Optional[str] = Field(None, description="面试问题url")
    interview_question_content: Optional[str] = Field(None, description="面试问题内容")
    interview_record_url: Optional[str] = Field(None, description="面试记录url")
    interview_record_content: Optional[str] = Field(None, description="面试记录内容")
    interview_evaluation_url: Optional[str] = Field(None, description="评估报告url")
    interview_evaluation_content: Optional[str] = Field(None, description="评估报告内容")
    interview_evaluation_score_content: Optional[dict] = Field(None, description="评估报告内容")
    interview_score: Optional[float] = Field(None, description="评估报告内容")
    is_matched: bool = Field(False, description="是否匹配")
